const router = require('express').Router();// 分发请求
var AipOcr = require('../src/index').ocr;// 文字识别(OCR)可以将图片中的文字信息转换为文本
const fs = require('fs') // 文件系统模块
const path = require('path')// 路径功能模块
const upload = require('../common/upload')
const host_url = `http://localhost:3000`


//设置APPID/AK/SK（前往百度云控制台创建应用后获取相关数据）
//var APP_ID = "你的APP_ID";
//var API_KEY = "你的API_KEY";
//var SECRET_KEY = "你的SECRET_KEY";

var APP_ID = "25937546";
var API_KEY = "7GmXcCn6zT3f7Fl5tUSaxEiq";
var SECRET_KEY = "E5CizMsl9tCQLvsHlsnWWMDGD0h4tNZ8";


var client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);

// 测试
router.get('/test', async (req, res) => {
    var image = fs.readFileSync('assets/car.png');
    var base64Img = new Buffer(image).toString('base64');
    await client.generalBasic(base64Img)
        .then(
            function (result) {
                // res.end(JSON.stringify(result));
                res.send(result)
            }
        );
})


// 识别车牌号码
// URL: /ocr/preview
// 完整地址: http://localhost:3000/ocr/preview
// 方式: post
// 参数：img
router.post('/preview', upload.single('img'), async (req, res) => {
    let file = req.file;
    console.log({ file })
    if (file == undefined) {
        res.send({
            code: -1,
            msg: '上传图片失败。'
        })
    }
    else {
        const pic = path.join(__dirname, `../public/upload/images/${file.filename}`)
        var image = fs.readFileSync(pic);
        var base64Img = new Buffer(image).toString('base64');
        await client.generalBasic(base64Img)
            .then(
                function (result) {
                    // res.end(JSON.stringify(result));
                    res.send({
                        code: 200,
                        msg: "识别车牌成功。",
                        result:result.words_result
                    })
                    // fs.unlink 删除文件
                    setTimeout(()=>{ fs.unlink(pic, (err) => {}) },1000)
                },
                function (err) {
                    res.send({
                        code: -1,
                        msg: "识别车牌失败。",
                        err 
                    })
                }
            )

            
    }
})

// 删除图片
// URL: /ocr/remove
// 方式：post
// 参数：picUrl (图片的路径) dirName
// 删除图片
router.post('/remove', async (req, res) => {
    // 相对地址 http://
    let picUrl = req.body.picUrl;
    let dirName = req.body.dirName || 'upload';
    // console.log('1.0',picUrl)
    if (picUrl == undefined || picUrl == '') {
        res.send({
            code: -1,
            msg: '缺少参数'
        })
    }
    else {
        //通过slice方法，分割出图片前面的url地址
        let index = picUrl.indexOf(dirName);
        // 判断该图片路径是否存在
        if (index > -1) {
            // 拼接图片路径 (查找图片)
            let temp_path = path.join(__dirname, '../../public/', picUrl.slice(index));
            console.log('xx', temp_path);
            // fs.unlink 删除文件
            fs.unlink(temp_path, (err) => {
                // err 如果为null 就删除图片成功 ； 否则删除失败
                if (err) {
                    res.send({
                        code: -1,
                        msg: '删除图片失败。'
                    })
                }
                else {
                    //删除图片文件成功
                    res.send({
                        code: 200,
                        msg: '删除图片成功。'
                    })
                }
            })
        }
        else {
            res.send({
                code: 404,
                msg: '该路径找不到图片资源。'
            })
        }
    }

})


module.exports = router;